package com.android.smap.api.requests; import java.util.HashMap; import java.util.Map; import android.util.Base64; import android.util.Log; import com.android.smap.GatewayApp; import com.android.smap.api.ApiConstants; import com.android.volley.AuthFailureError; import com.android.volley.DefaultRetryPolicy; import com.android.volley.NetworkResponse; import com.android.volley.ParseError; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.Response.ErrorListener; import com.android.volley.Response.Listener; import com.android.volley.toolbox.HttpHeaderParser; import com.google.gson.FieldNamingPolicy; public abstract class SmapRawRequest extends Request<String> implements ApiConstants { protected Listener<String> mListener; protected FieldNamingPolicy mNamingPolicy = FieldNamingPolicy.IDENTITY; public SmapRawRequest(int method, String url, Listener<String> listener, ErrorListener errorListener) { super(method, url, errorListener); Log.d("ApiRequest", "SENDING VOLLEY REQ : " + url); mListener = listener; setRetryPolicy(new DefaultRetryPolicy((int) GatewayApp.getAppConfig() .getTimeoutInMillis(), DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); } @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headers = new HashMap<String, String>(); String usr = GatewayApp.getPreferenceWrapper().getUserName(); String psw = GatewayApp.getPreferenceWrapper().getPassword(); String creds = String.format("%s:%s", usr, psw); String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.DEFAULT); headers.put("Authorization", auth); return headers; } @Override protected void deliverResponse(String response) { mListener.onResponse(response); } @Override protected Response<String> parseNetworkResponse(NetworkResponse response) { try { String xmlStringDump = new String(response.data); return Response.success(xmlStringDump, HttpHeaderParser.parseCacheHeaders(response)); } catch (Exception e) { return Response.error(new ParseError(e)); } } }